#include <iostream>
#include <vector>

const auto endl = '\n';

size_t VEC_cyrr_first(std::vector<std::string> vec)
{
    size_t count = 0;
    for (auto s : vec)  
    {
        if (-12144 <= s[0] && s[0] <= -12113) count++;
    }

    return count;
}

size_t VEC_less_than_3(std::vector<std::string> vec)
{
    size_t count = 0;

    for (auto s : vec)  
    {
        if (s.size() <= 3) count++;
    }

    return count;
}

size_t VEC_def_count(std::vector<std::string> vec)
{
    size_t count = 0;

    for (auto s : vec)
    {
        if (s.find(L'-') != s.npos) count++; 
    }

    return count;
}

std::tuple<std::string, size_t> VEC_max_str(std::vector<std::string> vec)
{
    auto max_s = vec[0]; size_t max_len = max_s.size();

    for (auto s : vec)
    {
        if (s.size() > max_len)
        {
            max_s = s; max_len = max_s.size();
        }
    } 

    return {max_s, max_len};
}

int main()
{
    std::string inp; 
    std::vector<std::string> vec;

    std::cout << "Введите строку: ";

    while (std::cin >> inp)
        vec.push_back(inp);

    if (vec.size() <= 1)    
    {
        std::cout << "Мало данных для анализа\n";
        return 0;
    }

    std::cout << "Кол-во слов: " << vec.size() << endl;
    std::cout << "Кол-во слов с заглавной кириллической буквы: " 
               << VEC_cyrr_first(vec) << endl;
    std::cout << "Кол-во слов не превышающих 3 символа: "
               << VEC_less_than_3(vec) << endl;
    std::cout << "Кол-во слов в составе которых имеется дефис: " 
               << VEC_def_count(vec) << endl << endl;   

    auto [str, size] = VEC_max_str(vec);

    std::cout << "Самое длинное слово: " << str << endl 
               << "Длина слова: " << size << endl;

    return 0;
}